#include<iostream>
#include<vector>
#include<queue>
#include<cstring>
#include<cmath>
#include<map>
#include<set>
#include<cstdio>
#include<algorithm>
#define debug(a) cout<<#a<<"="<<a<<endl;
using namespace std;
const int maxn=1e5+1000;
typedef long long LL;
inline LL read(){LL x=0,f=1;char ch=getchar();	while (!isdigit(ch)){if (ch=='-') f=-1;ch=getchar();}while (isdigit(ch)){x=x*10+ch-48;ch=getchar();}
return x*f;}
LL a[maxn];
int main(void){
   	cin.tie(0);std::ios::sync_with_stdio(false);
    LL t;cin>>t;
    while(t--){
        LL n;cin>>n;
        for(LL i=1;i<=n;i++) cin>>a[i];
        sort(a+1,a+1+n);
        LL fnum=0;LL num0=0;LL znum=0;
        LL p=1e18;
        for(LL i=1;i<=n;i++){
            if(a[i]<0) fnum++;
            if(a[i]==0) num0++;
            if(a[i]>0) znum++,p=min(p,a[i]);
        }
        LL ans=max((LL)1,fnum+num0);
        LL minv=1e18;
        for(LL i=1;i+1<=n;i++){
            if(a[i]<=0&&a[i+1]<=0){
                minv=min(minv,abs(a[i]-a[i+1]));
            }
        }
        if(fnum==0){
            LL res=0;
            if(!num0) res=1;
            else if(num0==1){
                res++;
                if(znum) res++;
            }
            else res=num0;
            cout<<res<<"\n";
        }
        else{
            if(minv!=1e18&&minv>=p) ans++;
            else if(minv==1e18&&znum) ans++;
            cout<<ans<<"\n";
        }
    }
   	return 0;
}
